package done.normal_1001_1100;

import org.junit.Test;

import java.util.ArrayList;
import java.util.List;

import static com.study.util.LogUtil.info;
import static java.lang.Math.min;

/**
 * 1002. Find Common Characters 查找常用字符
 * <p>
 * 给定仅有小写字母组成的字符串数组 A，返回列表中的每
 * 个字符串中都显示的全部字符（包括重复字符）组成的列
 * 表。例如，如果一个字符在每个字符串中出现 3 次，但
 * 不是 4 次，则需要在最终答案中包含该字符 3 次。
 * <p>
 * 你可以按任意顺序返回答案。
 * 示例 1：
 * 输入：["bella","label","roller"]
 * 输出：["e","l","l"]
 * 示例 2：
 * 输入：["cool","lock","cook"]
 * 输出：["c","o"]
 * <p>
 * 2019-04-18 10:02 PM
 **/
@SuppressWarnings("all")
public class FindCommonCharacters {

    public List<String> commonChars(String[] A) {
        // 190418 first
        List<String> list = new ArrayList<>();
        return list;
    }

    @Test
    public void test() {
        String[] A = new String[]{"bella", "label", "roller"};
        info(" [e, l, l] -> {}", commonChars(A));
    }
}










































/*
public List<String> commonChars(String[] A) {
    int[][] tab = new int[A.length][26];
    for(int i = 0; i < A.length; i++){
        String word = A[i];
        for(int j = 0; j < word.length(); j++){
            tab[i][word.charAt(j)-'a']++;
        }
    }

    for (int i = 0; i < tab.length; i++) {
        info(tab[i]);
    }

    List<String> list = new ArrayList<>();
    for(int i = 0; i < 26; i++){
        int min = A.length;
        for(int j = 0; j < A.length; j++){
            min = Math.min(min, tab[j][i]);
        }
        for(int k = 0; k < min; k++){
            list.add(""+(char)(i+'a'));
        }
    }
    return list;
}
*/
